package com.ruoyi.system.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;

import java.util.HashMap;
import java.util.Map;

public class GetCameraPreviewURL {

    public static String GetCameraPreviewURL() throws Exception {

        /**
         * STEP1：设置平台参数，根据实际情况,设置host appkey appsecret 三个参数.
         */
        ArtemisConfig artemisConfig = new ArtemisConfig();
        artemisConfig.setHost("192.168.7.100"); // 平台的ip端口
        artemisConfig.setAppKey("28238188");// 密钥appkey
        artemisConfig.setAppSecret("AlDrRjv7JLfP9S8N3LxW");// 密钥appSecret

        /**
         * STEP2：设置OpenAPI接口的上下文
         */
        final String ARTEMIS_PATH = "/artemis";

        /**
         * STEP3：设置接口的URI地址
         */
        final String previewURLsApi = ARTEMIS_PATH + "/api/eventService/v1/eventSubscriptionByEventTypes";
        Map<String, String> path = new HashMap<String, String>(2) {
            {
                put("https://", previewURLsApi);//根据现场环境部署确认是http还是https
            }
        };

        /**
         * STEP4：设置参数提交方式
         */
        String contentType = "application/json";

        /**
         * STEP5：组装请求参数
         */
        JSONArray array = new JSONArray();
        // 区域入侵
        array.add(131588);
        // 越界侦测
        array.add(131585);
        // 人员聚集
        array.add(131593);
        // 火点检测
        array.add(192515);
        // 烟雾检测
        array.add(192513);

        JSONObject jsonBody = new JSONObject();
        jsonBody.put("eventTypes", array);
        jsonBody.put("eventDest", "/receive/video");
        String body = jsonBody.toJSONString();
        /**
         * STEP6：调用接口
         */
        String result = ArtemisHttpUtil.doPostStringArtemis(artemisConfig, path, body, null, null, contentType , null);// post请求application/json类型参数
        return result;
    }

    public static void main(String[] args) throws Exception {
        String result = GetCameraPreviewURL();
        System.out.println("result结果示例: " + result);
    }
}
